home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t9.d64 / class program.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  6KB  |  314 lines

  1. 1 REM ****************
  2. 2 REM *BY MIKE FLAVEL*
  3. 3 REM ****************
  4. 9 DIMS$(40),A(40),M(40,40),U(40)
  5. 10 POKE53280,0:POKE53281,0:PRINTCHR$(8),CHR$(14)
  6. 11 PRINT"[147]"TAB(13)"[152][176][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  7. 20 PRINTTAB(13)"[152][221][195]LASS [208]ROGRAM[221]"
  8. 21 PRINTTAB(13)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][189][151]"
  9. 30 PRINT"";TAB(18)"[205]ENU[151]"
  10. 35 PRINTTAB(18)"[163][163][163][163]"
  11. 40 PRINT"[153][1] [195]REAT A [195]LASS"
  12. 41 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][151]"
  13. 50 PRINT"[2] [210]EVIEW A [195]LASS"
  14. 51 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  15. 55 PRINT"[152][3] [193]DD [205]ARK"
  16. 56 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163]"
  17. 60 PRINT"[158][4] [193]DD [211]TUDENT"
  18. 61 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  19. 62 PRINT"[152][5] [208]RINT OUT OF CLASS"
  20. 63 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  21. 65 PRINT"[129][6] [195]HANGE MARK"
  22. 66 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  23. 67 PRINT"[155][7] [197]ND "
  24. 68 PRINT"[163][163][163][163][163][163][163]"
  25. 69 PRINT"[8] [210]EAD ERROR CHANNEL"
  26. 70 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  27. 74 GETA$
  28. 75 IFVAL(A$)=0THEN74
  29. 80 A=VAL(A$)
  30. 90 ONAGOTO100,500,900,1600,1900,2400,2300,3100
  31. 100 REM CREAT A CLASS
  32. 105 PRINT"[153][147][195]REAT A CLASS"
  33. 110 INPUT"[151][197]NTER NAME OF CLASS";C$
  34. 120 PRINT"[147][199]REATER THAN 1"
  35. 121 INPUT"[197]NTER NUMBER OF STUDENTS IN CLASS";S
  36. 122 IFS<=1THEN121
  37. 130 FORZ=1TOS
  38. 134 PRINT"[147][211]TUDENTS ENTERED SO FAR:"
  39. 135 FORF=1TOZ:PRINTS$(F),:NEXTF:PRINT
  40. 140 PRINT"[197]NTER STUDENT #";Z;"";
  41. 150 INPUTS$(Z)
  42. 160 REM ZERO
  43. 161 PRINT"[147][151][200]OW MANY MARKS DO YOU WISH TO GIVE ":PRINTS$(Z);
  44. 165 PRINT" AT THE PRESENT TIME.[151]"
  45. 170 INPUTA(Z)
  46. 171 IFA(Z)<1THEN220
  47. 180 FORY=1TOA(Z)
  48. 190 PRINT"[147][197]NTER MARK #";Y;" FOR ";S$(Z);
  49. 200 INPUTM(Z,Y)
  50. 210 NEXTY
  51. 220 PRINT"[147]":NEXTZ
  52. 230 PRINT"[147][206]OW SAVING UNDER ";C$
  53. 240 REM SAVE
  54. 250 PRINT"PRESS ANY KEY TO CONTINUE"
  55. 260 GETA$:IFA$=""THEN260
  56. 265 GOSUB3000
  57. 270 OPEN2,8,2,"0:"+C$+",S,W"
  58. 280 PRINT#2,S
  59. 310 FORZ=1TOS
  60. 320 PRINT#2,A(Z)
  61. 330 NEXTZ
  62. 355 FORZ=1TOS
  63. 360 FORY=1TOA(Z)
  64. 370 PRINT#2,M(Z,Y)
  65. 380 NEXTY
  66. 390 NEXTZ
  67. 420 FORZ=1TOS
  68. 430 PRINT#2,S$(Z)
  69. 440 NEXTZ
  70. 450 CLOSE2
  71. 460 PRINT"[147][196][207][206][197]!![146]"
  72. 470 PRINT"[208]RESS ANY KEY TO RETURN TO MENU"
  73. 480 GETA$:IFA$=""THEN480
  74. 490 RUN
  75. 500 REM REVIEW CLASS
  76. 505 PRINT"[147][151][210]EVIEW A CLASS"
  77. 510 INPUT"[197]NTER NAME OF CLASS";C$
  78. 520 PRINT"[208]LEASE WAIT FOR ABOUT 10 SECONDS"
  79. 530 REM WORK
  80. 540 OPEN2,8,2,"0:"+C$+",S,R"
  81. 550 INPUT#2,S
  82. 580 FORZ=1TOS
  83. 590 INPUT#2,A(Z)
  84. 600 NEXTZ
  85. 630 FORZ=1TOS
  86. 640 FORY=1TOA(Z)
  87. 650 INPUT#2,M(Z,Y)
  88. 660 NEXTY
  89. 670 NEXTZ
  90. 700 FORZ=1TOS
  91. 710 INPUT#2,S$(Z)
  92. 720 NEXTZ
  93. 730 CLOSE2
  94. 740 PRINT"[147][198][201][206][201][211][200][197][196]!!"
  95. 750 PRINT"[208]RESS ANY KEY TO BEGIN REVIEW"
  96. 755 GETA$:IFA$=""THEN755
  97. 760 FORZ=1TOS
  98. 770 PRINT"[147][211]TUDENT:";S$(Z)
  99. 780 PRINT"[205]ARKS:"
  100. 785 IFA(Z)<1THENPRINT"[206]O MARK AT PRESENT TIME.":GOTO831
  101. 790 FORY=1TOA(Z)
  102. 800 PRINTM(Z,Y);"";
  103. 810 AV=M(Z,Y)+AV
  104. 820 NEXTY
  105. 829 T=T+(AV/A(Z))
  106. 830 PRINT"[193]VERAGE IS:";(AV/A(Z))
  107. 831 REM
  108. 832 PRINT"[208]RESS ANY KEY TO CONTINUE"
  109. 833 GETA$:IFA$=""THEN833
  110. 834 AV=0
  111. 840 NEXTZ
  112. 841 IFT<1THEN846
  113. 845 PRINT"[195]LASS AVERAGE:";T/S:GOTO850
  114. 846 PRINT"[195]LASS AVERAGE IS UNDETERMINAL"
  115. 850 PRINT"[208]RESS ANY KEY TO RETURN TO MENU"
  116. 860 GETA$:IFA$=""THEN860
  117. 870 RUN
  118. 900 REM ADD MARKS
  119. 905 PRINT"[152][147][193]DD MARKS"
  120. 910 INPUT"[197]NTER CLASS NAME";C$
  121. 920 OPEN2,8,2,"0:"+C$+",S,R"
  122. 930 INPUT#2,S
  123. 940 FORZ=1TOS
  124. 950 INPUT#2,A(Z)
  125. 960 NEXTZ
  126. 970 FORZ=1TOS
  127. 980 FORY=1TOA(Z)
  128. 990 INPUT#2,M(Z,Y)
  129. 1000 NEXTY
  130. 1010 NEXTZ
  131. 1020 FORZ=1TOS
  132. 1030 INPUT#2,S$(Z)
  133. 1040 NEXTZ
  134. 1050 CLOSE2
  135. 1060 PRINT"PRESS ANY KEY TO BEGIN REVIEW"
  136. 1070 GETA$:IFA$=""THEN1070
  137. 1080 FORZ=1TOS
  138. 1090 PRINT"[147][211]TUDENT:";S$(Z)
  139. 1100 PRINT"[205]ARKS:"
  140. 1105 IFA(Z)<1THENPRINT"[206]O MARK AT PRESENT TIME":GOTO1160
  141. 1110 FORY=1TOA(Z)
  142. 1120 PRINTM(Z,Y);"";
  143. 1130 AV=M(Z,Y)+AV
  144. 1140 NEXTY
  145. 1150 PRINT"[193]VERAGE IS:";(AV/A(Z))
  146. 1160 PRINT"[208]RESS ANY KEY TO CONTINUE"
  147. 1170 GETA$:IFA$=""THEN1170
  148. 1180 AV=0
  149. 1190 NEXTZ
  150. 1220 INPUT"[147][197]NTER NAME YOU WISH TO ADD TO";Z$
  151. 1230 PRINT"[147][206]OW SEARCHING FOR ";Z$
  152. 1240 FORZ=1TOS
  153. 1250 IFZ$=S$(Z)THEN1280
  154. 1260 NEXTZ
  155. 1270 PRINT"[147][206]AME NOT FOUND. [210]ETURNING TO MENU":FORP=1TO3000:NEXT:RUN
  156. 1280 PRINT"[147][206]AME FOUND"
  157. 1290 PRINT"[200]ERE ARE HIS CURRENT MARKS"
  158. 1300 FORY=1TOA(Z)
  159. 1310 PRINTM(Z,Y);" ";
  160. 1320 NEXT
  161. 1330 PRINT"[197]NTER THE ";A(Z)+1;" MARK."
  162. 1340 INPUTM(Z,A(Z)+1)
  163. 1350 A(Z)=A(Z)+1
  164. 1351 PRINT"[158][208]RESS [F1] TO ADD ANOTHER MARK.[151]"
  165. 1352 GETA$:IFA$=""THEN1352
  166. 1353 IFA$="[133]"THEN1220
  167. 1355 GOSUB3000
  168. 1360 PRINT"[147][206]OW SAVING"
  169. 1370 OPEN2,8,2,"@0:"+C$+",S,W"
  170. 1380 PRINT#2,S
  171. 1390 FORZ=1TOS
  172. 1400 PRINT#2,A(Z)
  173. 1410 NEXTZ
  174. 1420 FORZ=1TOS
  175. 1430 FORY=1TOA(Z)
  176. 1440 PRINT#2,M(Z,Y)
  177. 1450 NEXTY
  178. 1460 NEXTZ
  179. 1470 FORZ=1TOS
  180. 1480 PRINT#2,S$(Z)
  181. 1490 NEXTZ
  182. 1500 CLOSE2
  183. 1510 RUN
  184. 1600 REM ADD A STUDENT
  185. 1605 PRINT"[147][158][193]DD STUDENT TO CLASS"
  186. 1610 PRINT"[159][197]NTER [195]LASS NAME YOU WISH TO ADD STUDENTTO"
  187. 1620 INPUTC$
  188. 1630 OPEN2,8,2,"0:"+C$+",S,R"
  189. 1640 INPUT#2,S
  190. 1650 FORZ=1TOS
  191. 1660 INPUT#2,A(Z)
  192. 1670 NEXTZ
  193. 1680 FORZ=1TOS
  194. 1690 FORY=1TOA(Z)
  195. 1700 INPUT#2,M(Z,Y)
  196. 1720 NEXTY
  197. 1730 NEXTZ
  198. 1740 FORZ=1TOS
  199. 1750 INPUT#2,S$(Z)
  200. 1760 NEXTZ
  201. 1770 CLOSE2
  202. 1780 INPUT"[197]NTER NAME OF STUDENT";S$(S+1)
  203. 1790 PRINT"[147][197]NTER NUMBER OF MARKS TO BE GIVEN[151]"
  204. 1800 INPUTA(S+1)
  205. 1805 IFA(S+1)<1THEN1860
  206. 1810 FORY=1TOA(S+1)
  207. 1820 PRINT"[197]NTER MARK #";Y;" FOR ";S$(Z);"[151]"
  208. 1830 INPUTM(S+1,Y)
  209. 1840 NEXTY
  210. 1860 S=S+1
  211. 1865 GOSUB3000
  212. 1870 GOTO1360
  213. 1900 REM CLASS PRINTOUT
  214. 1901 PRINT"[147][152][195]LASS PRINTOUT"
  215. 1905 INPUT"[197]NTER CLASS NAME";C$
  216. 1910 OPEN2,8,2,"0:"+C$+",S,R"
  217. 1920 INPUT#2,S
  218. 1930 FORZ=1TOS
  219. 1940 INPUT#2,A(Z)
  220. 1950 NEXTZ
  221. 1960 FORZ=1TOS
  222. 1970 FORY=1TOA(Z)
  223. 1980 INPUT#2,M(Z,Y)
  224. 1990 NEXTY
  225. 2000 NEXTZ
  226. 2010 FORZ=1TOS
  227. 2020 INPUT#2,S$(Z)
  228. 2030 NEXTZ
  229. 2040 CLOSE2
  230. 2050 PRINT"[147][215]HEN YOU HAVE PAPER IN THE PRINTER AND"
  231. 2060 PRINT"YOU HAVE TURNED THE PRINTER ON, PRESS   ANY KEY.[151]"
  232. 2070 GETA$:IFA$=""THEN2070
  233. 2080 OPEN3,4,7
  234. 2090 PRINT#3,CHR$(16)"18[195]LASS [210]EPORT"
  235. 2100 PRINT#3
  236. 2110 PRINT#3,"[195]LASS NAME:";C$
  237. 2120 PRINT#3:PRINT#3
  238. 2130 FORZ=1TOS
  239. 2140 PRINT#3,"[211]TUDENT:";S$(Z)
  240. 2150 PRINT#3,"[211]TUDENTS [205]ARKS"
  241. 2155 IFA(Z)<1THENPRINT#3,"[206]O MARKS AT PRESENT TIME":GOTO2188
  242. 2160 FORY=1TOA(Z)
  243. 2165 T=T+M(Z,Y)
  244. 2170 PRINT#3,M(Z,Y);" ";
  245. 2180 NEXTY
  246. 2185 PRINT#3,CHR$(10)"[193]VERAGE:";T/A(Z)
  247. 2186 CA=CA+(T/A(Z))
  248. 2188 T=0
  249. 2189 PRINT#3,CHR$(13)
  250. 2190 NEXTZ
  251. 2194 IFCA<1THEN2196
  252. 2195 PRINT#3,"[195]LASS AVERAGE IS:";CA/S:GOTO2200
  253. 2196 PRINT#3,"[195]LASS AVERAGE IS UNDETERMINAL"
  254. 2197 PRINT#3,CHR$(13)
  255. 2200 CLOSE3
  256. 2220 RUN
  257. 2300 PRINT"[147]":END
  258. 2400 REM CHANGE MARK
  259. 2405 PRINT"[129][147][195]HANGE MARK"
  260. 2410 INPUT"[197]NTER NAME OF CLASS";C$
  261. 2420 PRINT"[208]LEASE WAIT FOR ABOUT 10 SECONDS"
  262. 2430 REM WORK
  263. 2440 OPEN2,8,2,"0:"+C$+",S,R"
  264. 2450 INPUT#2,S
  265. 2460 FORZ=1TOS
  266. 2470 INPUT#2,A(Z)
  267. 2480 NEXTZ
  268. 2490 FORZ=1TOS
  269. 2500 FORY=1TOA(Z)
  270. 2510 INPUT#2,M(Z,Y)
  271. 2520 NEXTY
  272. 2530 NEXTZ
  273. 2540 FORZ=1TOS
  274. 2550 INPUT#2,S$(Z)
  275. 2560 NEXTZ
  276. 2570 CLOSE2
  277. 2580 PRINT"[147][197]NTER NAME YOU WISH TO CHANGE."
  278. 2590 INPUTV$
  279. 2600 FORZ=1TOS
  280. 2610 IFS$(Z)=V$THEN2640
  281. 2620 NEXTZ
  282. 2630 PRINT"[206]AME NOT FOUND. [210]ETURNING TO MENU.":FORG=1TO3000:NEXT:RUN
  283. 2640 PRINT"[147][151][206]AME:";S$(Z):PRINT"[205]ARKS:"
  284. 2650 FORY=1TOA(Z)
  285. 2660 PRINTM(Z,Y)" ";
  286. 2670 NEXTY
  287. 2680 INPUT"[197]NTER MARK YOU WISH TO CHANGE";G
  288. 2690 FORX=1TOA(Z)
  289. 2700 IFG=M(Z,X)THEN2730
  290. 2710 NEXTX
  291. 2720 PRINT"[205]ARK NOT FOUND. [210]ETURNING TO MENU.":FORG=1TO3000:NEXT:RUN
  292. 2730 PRINT"[147][205]ARK FOUND."
  293. 2740 INPUT"[197]NTER NEW MARK";M(Z,X)
  294. 2750 GOTO1360
  295. 3000 LETFLAG=0
  296. 3010 FORZ=1TOS-1
  297. 3020 IFS$(Z)<=S$(Z+1)THEN3070
  298. 3030 H$=S$(Z):H=A(Z):FORQ=1TOA(Z):U(Q)=M(Z,Q):NEXTQ
  299. 3040 S$(Z)=S$(Z+1):A(Z)=A(Z+1):FORQ=1TOA(Z+1):M(Z,Q)=M(Z+1,Q):NEXTQ
  300. 3050 S$(Z+1)=H$:A(Z+1)=H:FORQ=1TOA(Z+1):M(Z+1,Q)=U(Q):NEXTQ
  301. 3060 LETFLAG=1
  302. 3070 NEXTZ
  303. 3080 IFFLAG=1THEN3000
  304. 3090 RETURN
  305. 3100 REM READ ERROR CHANNEL
  306. 3110 PRINT"[147][152][210]EAD DRIVE ERROR CHANNEL"
  307. 3120 OPEN15,8,15
  308. 3130 INPUT#15,A$,B$,C$,D$
  309. 3140 CLOSE15
  310. 3150 PRINT"[196]RIVE STATUS:";A$;" ";B$;" ";C$;" ";D$
  311. 3160 PRINT"[208]RESS ANY KEY TO CONTINUE"
  312. 3170 GETA$:IFA$=""THEN3170
  313. 3180 RUN
  314.